package cn.stylefeng.guns.modular.ctm.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;

import javax.validation.constraints.NotBlank;

@Data
@TableName("rc_job_sync")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "岗位同步表")
public class Ctm extends Model<Ctm> {
    private static final long serialVersionUID = 1L;

    /**
     * 岗位id（该值用作判断更新还是新增）
     */
    @TableId
    private String inputJobId;
    /**
     * 岗位名称
     */
    @NotBlank(message = "岗位名称不能为空")
    private String jobName;
    /**
     * 工种代码值，具体值见5.14
     */
    @NotBlank(message = "工种代码值不能为空")
    private String work;
    /**
     * 详细工作地址
     */
    @NotBlank(message = "详细工作地址不能为空")
    private String workPlaceDetail;
    /**
     * 工作地区编码，具体值见5.13
     */
    @NotBlank(message = "工作地区编码不能为空")
    private String workTown;
    /**
     * 最高薪资,不能与具体薪资同时为空
     */
    private Long maxSalary;
    /**
     * 最低薪资,不能与具体薪资同时为空
     */
    private Long minSalary;
    /**
     * 具体薪资,不能与最高最低薪资同时为空
     */
    private Long salary;
    /**
     * 招聘人数
     */
    @NotBlank(message = "招聘人数不能为空")
    private Long numOfMember;
    /**
     * 性别限制,具体值见5.6
     */
    private String genderLimitations;
    /**
     * 岗位发布状态，具体值见5.4
     */
    @NotBlank(message = "岗位发布状态不能为空")
    private String postStatus;
    /**
     * 结算方式,具体值看代码表,默认填写bymonth
     */
    @NotBlank(message = "结算方式不能为空")
    private String paymentMethod;
    /**
     * 学历要求,具体值见5.2
     */
    private String educationLevel;
    /**
     * 工作方式,具体值见5.5
     */
    @NotBlank(message = "工作方式不能为空")
    private String workMode;
    /**
     * 招聘人最大年龄
     */
    private Long maximumAge;
    /**
     * 招聘人最小年龄
     */
    private Long minimumAge;
    /**
     * 岗位发布开始时间,格式yyyy-MM-dd
     */
    private String startTime;
    /**
     * 岗位发布结束时间,格式yyyy-MM-dd
     */
    private String endTime;
    /**
     * 岗位创建时间,格式yyyy-MM-dd
     */
    private String createTime;
    /**
     * 优先级,具体值见5.1
     */
    private String priority;
    /**
     * 岗位工作内容
     */
    private String workContent;
    /**
     * 岗位工作时间,例9:00-18:00
     */
    private String workTimeDetail;
    /**
     * 工作时间段,具体值见5.7
     */
    private String workTime;
    /**
     * 工作日期始,短期兼职岗位必传,格式yyyy-MM-dd
     */
    private String workDateStart;
    /**
     * 工作日期止,短期兼职岗位必传,格式yyyy-MM-dd
     */
    private String workDateEnd;
    /**
     * 招聘类型,具体值见5.8
     */
    @NotBlank(message = "招聘类型不能为空")
    private String recruitmentType;
    /**
     * 岗位福利,具体值见5.9
     */
    private String welfareRequirement;
    /**
     * 岗位描述
     */
    private String jobDescribe;
    /**
     * 岗位标题
     */
    private String jobTitle;
    /**
     * 备注
     */
    private String remark;
    /**
     * 薪资单位,具体值见5.10,无则默认填写bymonth
     */
    @NotBlank(message = "薪资单位不能为空")
    private String salaryCalculation;
    /**
     * 联系号码
     */
    @NotBlank(message = "联系号码不能为空")
    private String cellPhone;
    /**
     * 身高要求
     */
    private String higher;
    /**
     * 是否允许经纪人带队报名,0不允许,1允许
     */
    private String allowLaborApply;
    /**
     * 长期兼职工作日期，招聘类型为长期兼职时必传,具体值看代码表
     */
    private String longTimeWorkDate;
    /**
     * 岗位来源（平台名称）
     */
    @NotBlank(message = "岗位来源不能为空")
    private String gwly;
    /**
     * 岗位来源地址（原链接地址）
     */
    @NotBlank(message = "岗位来源地址不能为空")
    private String gwlyUrl;
    /**
     * 岗位适合人群具体值见5.15
     */
    @NotBlank(message = "岗位适合人群不能为空")
    private String suitablePeople;
    /**
     * 岗位标签具体值见5.16（可多选，多个用逗号隔开）
     */
    @NotBlank(message = "岗位标签不能为空")
    private String jobTag;
    /**
     * 岗位下线时间,格式yyyy-MM-dd
     */
    @NotBlank(message = "岗位下线时间不能为空")
    private String cronDate;
    /**
     * 发布人用户对象 电话号码
     */
    private String telephone;
    /**
     * 发布人用户对象 身份证姓名
     */
    private String idCardName;
    /**
     * 发布人用户对象 身份证号
     */
    private String idCardNo;
    /**
     * 发布人用户对象 用户id
     */
    private String inputUserId;
    /**
     * 发布人用户对象 性别,具体值看数据字典
     */
    private String sex;
    /**
     * 招聘企业信息 单位名称
     */
    @NotBlank(message = "单位名称不能为空")
    private String enterpriseName;
    /**
     * 招聘企业信息 法定代表人
     */
    private String enterpriseLeaderName;
    /**
     * 招聘企业信息 企业联系方式
     */
    private String phone;

    /**
     * 招聘企业信息 企业id
     */
    @NotBlank(message = "企业id不能为空")
    private String inputEnterpriseId;
    /**
     * 招聘企业信息 统一社会信用代码
     */
    @NotBlank(message = "统一社会信用代码不能为空")
    private String uniteCode;
    /**
     * 招聘企业信息 企业logo
     */
    private String logo;
    /**
     * 招聘企业信息 企业规模
     */
    private String scale;
    /**
     * 招聘企业信息 企业性质
     */
    private String nature;
    /**
     * 招聘企业信息 企业介绍
     */
    private String contents;
    /**
     * 招聘企业信息 企业所在地
     */
    private String enterpriseLocation;
    /**
     * 工作经验，具体值见5.19
     */
    private String workExperience;
    /**
     * 工种小类，具体值见5.20
     */
    private String workzl;
    /**
     * 工作地址经度
     */
    private String lng;
    /**
     * 工作地址纬度
     */
    private String lat;
    /**
     * 大类（岗位适合人群为高校毕业生则必传），多个用逗号隔开具体值见5.21,传编码
     */
    private String major2;
    /**
     * 联系人姓名
     */
    private String hrxm;
    /**
     * 联系人身份证
     */
    private String hrsfz;
    private String userid;
    private String enterpriseid;
    /**
     * 岗位状态
     */
    private Boolean gwStatus;

    @Getter
    @TableField(exist = false)
    private String onlineUserId;

}
